docs: add a platform comparison page - #1730
Conversation
Add docs/comparison.md, comparing GeoLibre against QGIS, ArcGIS Pro, ArcGIS Online, Felt, and kepler.gl across five tables: platform basics, data and formats, analysis and processing, cartography and layout, and automation/extensibility/sharing. Follow the tables with per-platform guidance on when each one is the right choice, and a section stating plainly where GeoLibre is not the strongest option (large local datasets, GDAL format breadth, specialized Esri toolboxes, enterprise data management, maturity) so the rest of the page is worth trusting. Scope the non-GeoLibre columns to mainstream out-of-the-box behavior as of August 2026, credit separate products as separate (QField, ArcGIS Field Maps, ArcGIS Dashboards/StoryMaps), and invite corrections via GitHub issues. Wire the page into the mkdocs nav after Features, and cross-link it from index.md and features.md.
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughAdded a GeoLibre comparison guide. The guide compares mapping platforms, documents selection guidance and limitations, and links to related documentation. The guide is available from the main navigation and key documentation pages. ChangesDocumentation comparison
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Code reviewI reviewed this docs-only PR ( Bugs: None found. All internal cross-link targets and anchors resolve ( Security: None applicable — no code, no user input handling, no secrets. Performance: N/A — static markdown content only. Quality: Content is well-structured and internally consistent (e.g., the "Format breadth" claim in the top table is echoed, not contradicted, by the "Where GeoLibre is not the strongest option" section). Self-referential claims about GeoLibre's own features (Android app via Tauri v2, CLAUDE.md: |
🔍 Cloudflare PR preview
|
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/comparison.md`:
- Line 48: Update the Esri services comparison row so it no longer lists “.gdb”
folders as a network service; either move that format to the format comparison
or rename the row to clearly cover Esri services and file geodatabases.
- Line 47: Update the OGC services row in the comparison table to distinguish
GetCapabilities discovery for WMS/WFS/WMTS from landing-page and /conformance
discovery for OGC API Features/Tiles, preserving the existing service coverage
and comparison values.
- Line 57: Update the kepler.gl entries in the comparison table, including the
analysis and AI assistant cells at the referenced sections, to reflect DuckDB
SQL Data Explorer and visualization/data-exploration capabilities rather than
“none.” Identify the AI Assistant as model-dependent, and keep the descriptions
concise and consistent across all affected rows.
- Around line 31-36: Update the Felt column entries in the comparison table and
the referenced sections to name the separate Felt Field App for mobile, state
that offline areas are available through that app on eligible paid plans, and
mention Felt’s self-hosted VPC deployment option wherever data hosting or
deployment scope is described. Replace the current “No”, “—”, and
hosted-cloud-only wording without changing unrelated product comparisons.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: ad943a5c-4e53-4858-a995-e5dc6d35fa31
📒 Files selected for processing (4)
docs/comparison.mddocs/features.mddocs/index.mdmkdocs.yml
- Felt: name the separate Felt Field App for iOS/Android in the Mobile row rather than calling it responsive web, record its offline areas with sync-on-reconnect, and note the single-tenant AWS deployment in the data-residency and self-hosting rows. Verified against felt.com/platform/field-app and help.felt.com/administration/self-hosted-felt. - Felt: the Dashboards row said "—", but Felt ships dashboard components (statistics, bar, histogram, time series). Corrected. - kepler.gl: the analysis, spatial SQL, and AI assistant rows understated it. It ships a DuckDB-backed SQL Data Explorer over loaded data and remote URLs, spatial joins through its assistant, and an AI assistant supporting OpenAI, Gemini, DeepSeek, and local Ollama with a user-supplied key. Verified against the kepler.gl user guides. - OGC services row: GetCapabilities is the WMS/WFS/WMTS discovery mechanism; OGC API Features/Tiles discovers from a landing page, collection, or items URL. Split the two rather than attributing GetCapabilities to both. - Esri row: `.gdb` is a local File Geodatabase format, not a network service. Renamed the row to "Esri services and geodatabases" and labeled the entry accordingly. - Updated the "Choose Felt" and "Choose kepler.gl" paragraphs to match the corrected tables — Felt's self-hosting option and field collection, and kepler.gl's SQL/AI analysis path.
Code reviewThis is a docs-only PR adding Bugs: None found. Markdown tables are well-formed (every row has 8 pipe delimiters / 7 columns, consistent with the PR description's claim). All internal links/anchors checked resolve: Security: None. No user input, no code execution, no secrets. Performance: N/A — static documentation content. Quality:
CLAUDE.md: No violations found. This changes only One inline comment posted on the minor "self-hosted server" phrasing nit; everything else in this PR looks solid and well fact-checked against the existing docs. |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/comparison.md`:
- Around line 45-46: Update the ArcGIS Pro entries in the comparison table:
replace “Zarr via extensions” with wording that identifies Zarr as a natively
supported multidimensional raster format, and replace “Via add-ins” with wording
describing the built-in STAC connection and Explore STAC pane workflow. Leave
the other product entries unchanged.
- Line 88: Update the ArcGIS Online cell in the comparison table from “—” to
concise wording that indicates organization-enabled AI assistants are available,
including Arcade assistant support, subject to administrator enablement and beta
restrictions being disabled.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: cdd682c8-268c-4673-b3fd-3375b4eb4967
📒 Files selected for processing (1)
docs/comparison.md
- Real-time collaboration row said "self-hosted server", implying self-hosting is required. Per docs/collaboration.md the default relay is the hosted Cloudflare Durable Object at collab.geolibre.app (workers/collab), with workers/collab-node as the self-hostable option. Now reads "hosted relay, optionally self-hosted". - ArcGIS Pro reads Zarr as a native multidimensional raster type, not "via extensions" — corrected against the Esri multidimensional raster types documentation. - ArcGIS Pro STAC support is built in (STAC connections and the Explore STAC pane, since Pro 3.2), not "via add-ins". - Same row, not flagged but the same error: QGIS reads Zarr through GDAL's built-in Zarr driver (core since GDAL 3.4), so "plugin-assisted" was wrong. - ArcGIS Online AI assistant cell said "—", but it ships the Arcade assistant (beta) across Map Viewer, Field Maps Designer, Experience Builder, and Scene Viewer, plus the wider AI assistants family.
🔍 GitHub Pages PR preview
|
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/comparison.md`:
- Line 46: Update the QGIS entry in the STAC comparison row to describe support
as built in, replacing “Via plugins” with concise wording that mentions STAC
connections through the Browser panel and Data Source Manager.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 3dc8f726-aaf5-419d-a3dd-e363255b6451
📒 Files selected for processing (1)
docs/comparison.md
Code reviewThis is a docs-only PR ( Bugs: None found. Spot-checked every internal cross-link and anchor referenced from the new page — Security: None. No secrets, no external script inclusion, only a standard GitHub issues link. Performance: N/A (docs only). Quality: The GeoLibre-side factual claims (Android app, real-time collaboration architecture, AI assistant BYO-key, Dashboard panel, Whitebox "1,000+" tools, PGlite/Sedona SQL engines, planetary basemap list, CLAUDE.md: No violations — this change doesn't touch any of the mirrored-constant, catalog-generation, or CSP-allowlist areas CLAUDE.md calls out, and it doesn't modify translatable UI strings. No inline comments posted. |
- QGIS STAC support is built in, not "via plugins": QGIS creates STAC connections from the Browser panel and the Data Source Manager's STAC tab, covering both static catalogs and STAC APIs. Verified against the QGIS user manual's OGC client support page. Left the version unqualified since the page compares current releases.
Code reviewThis is a docs-only PR (
Bugs: None found. Security: None found (no code, no secrets, no injected content). Performance: N/A — static Markdown docs page. Quality: No issues rising to the level of a finding. One very minor, low-confidence observation not worth an inline comment: the teaser sentences added to CLAUDE.md: No violations. This change doesn't touch translatable UI strings (i18n applies to the app's One caveat: I have no network access, so I could not independently fact-check the specific claims made about third-party products (QGIS, ArcGIS Pro/Online, Felt, kepler.gl feature details as of "August 2026"). The PR description states these were verified by the author; a reviewer with current knowledge of those products should spot-check the more specific/recent claims (e.g., kepler.gl's AI assistant provider list, Felt's Enterprise AWS single-tenant offering) before merging. |
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
docs/comparison.md (2)
57-57: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winSeparate configured QGIS providers from out-of-the-box tools.
The scope states that the table compares mainstream out-of-the-box behavior, but this cell counts
SAGAandGRASSwith native and GDAL tools. QGIS documents that providers relying on third-party applications require additional configuration. Qualify these providers or exclude them from the out-of-the-box count. (docs.qgis.org)🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/comparison.md` at line 57, Update the QGIS geoprocessing-tools cell in the comparison table to distinguish SAGA and GRASS providers that require additional configuration from tools available out of the box; either qualify those providers explicitly or exclude them from the out-of-the-box count.Source: MCP tools
7-11: 🔒 Security & Privacy | 🟠 Major | ⚡ Quick winSensitive Data Exposure (CWE-200): Exposure of Sensitive Information to an Unauthorized Actor
Reachability: External
Qualify the local-data pledge.
docs/comparison.md:7-11anddocs/comparison.md:96-100state that GeoLibre keeps data on the user’s machine without mentioning optional network transfers. Use “local by default” and list the exceptions: AI assistant prompts plus layer metadata, and real-time collaboration project snapshots via the relay.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/comparison.md` around lines 7 - 11, Update the local-data claim in the introductory comparison text around GeoLibre’s browser experience to say “local by default” and explicitly identify the exceptions: AI assistant prompts and layer metadata, plus real-time collaboration project snapshots sent through the relay; apply the same qualification to the corresponding statement near the later comparison section.Source: MCP tools
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/comparison.md`:
- Line 48: Update the “Esri services and geodatabases” row to distinguish ArcGIS
Online hosted layers from direct local File Geodatabase support; replace the
ArcGIS Online geodatabase capability labeled “Native” with hosted-layer wording,
or split the hosted services and local .gdb entries into separate rows while
preserving accurate native support only for local geodatabases.
---
Outside diff comments:
In `@docs/comparison.md`:
- Line 57: Update the QGIS geoprocessing-tools cell in the comparison table to
distinguish SAGA and GRASS providers that require additional configuration from
tools available out of the box; either qualify those providers explicitly or
exclude them from the out-of-the-box count.
- Around line 7-11: Update the local-data claim in the introductory comparison
text around GeoLibre’s browser experience to say “local by default” and
explicitly identify the exceptions: AI assistant prompts and layer metadata,
plus real-time collaboration project snapshots sent through the relay; apply the
same qualification to the corresponding statement near the later comparison
section.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 35c5f8a0-3d40-4339-8e23-e98963dfea59
📒 Files selected for processing (1)
docs/comparison.md
- The "Esri services and geodatabases" row left ArcGIS Online as "Native", which after the row was renamed in 03893bb read as direct file geodatabase support. ArcGIS Online serves hosted layers, so the cell now reads "Hosted feature, tile, imagery, and scene layers", matching the documented hosted web layer types. ArcGIS Pro keeps "Native", where it is accurate for both services and geodatabases.
|
Everything checks out cleanly. This is a well-crafted, self-consistent docs PR with no code changes. I did not find issues rising to the level of an inline comment — the tables are well-formed, internal links/anchors resolve, and the factual claims about GeoLibre's own capabilities match Code reviewNo issues found. This is a docs-only PR ( Checks performed:
|
Adds
docs/comparison.md, a page comparing GeoLibre to the platforms people most often ask about: QGIS, ArcGIS Pro, ArcGIS Online, Felt, and kepler.gl.What's in it
Five comparison tables:
Then "Where each one is the right choice" (a paragraph per platform, including when not to pick GeoLibre) and "Where GeoLibre is not the strongest option", which states the real limits: the browser memory ceiling on large local datasets, GDAL/OGR's wider format coverage, Esri's specialized toolboxes, enterprise geodatabase management, and relative maturity.
That last section is deliberate. A comparison written by the project gets discounted entirely if it reads as all-wins, so the honest limits are what make the tables above them credible.
Framing
The intro carries a dated caveat (August 2026), scopes the non-GeoLibre columns to mainstream out-of-the-box behavior rather than anything reachable with every add-on, credits separate products as separate (QField for QGIS in the field, ArcGIS Field Maps / Dashboards / StoryMaps for Esri) instead of folding them into the base product, and links to the issue tracker for corrections.
Wiring
mkdocs.ymlnav as a top-level Comparison entry after Featuresdocs/index.md(Project status) anddocs/features.md(intro)Verification
zensical build— no issues; emitssite/comparison/index.htmlwith all 5 tablespre-commit run --files <changed>— passingDocs only; no application code touched.
Summary by CodeRabbit